//
//  WCBuildTargetGetInfoWindowController.h
//  WabbitCode
//
//  Created by William Towe on 4/2/09.
//  Copyright 2009 Revolution Software. All rights reserved.
//

#import <Cocoa/Cocoa.h>


extern NSString *kWCBuildTargetGetInfoWindowGeneralTabIdentifier;
extern NSString *kWCBuildTargetGetInfoWindowBuildOptionsTabIdentifier;
extern NSString *kWCBuildTargetGetInfoWindowBuildStepsTabIdentifier;
extern NSString *kWCBuildTargetGetInfoWindowConfigurationsTabIdentifier;

@class WCProject, WCBuildTarget, WCBuildConfiguration;

@interface WCBuildTargetGetInfoWindowController : NSWindowController {
	IBOutlet NSPopUpButton *_modelPopUpButton;
	IBOutlet NSPopUpButton *_outputPopUpButton;
	IBOutlet NSPopUpButton *_configurationPopUpButton;
	IBOutlet NSTableView *_buildOptionsTableView;
	IBOutlet NSTableView *_configurationsTableView;
	IBOutlet NSTabView *_tabView;
	IBOutlet NSTableView *_buildStepsTableView;
	
	WCBuildTarget *_buildTarget;
	NSArray *_selectedBuildConfigurationOptionNames;
}
@property (readonly) WCProject *project;
@property (readwrite, retain) WCBuildTarget *buildTarget;
@property (readwrite, retain) NSArray *selectedBuildConfigurationOptionNames;
@property (readonly) WCBuildConfiguration *selectedBuildConfiguration;
@property (readonly) NSTabView *tabView;
@property (readonly) NSTableView *buildStepsTableView;

+ (WCBuildTargetGetInfoWindowController *)getInfoWindowControllerWithBuildTarget:(WCBuildTarget *)buildTarget;

- (id)initWithBuildTarget:(WCBuildTarget *)buildTarget;

- (IBAction)modelPopUpButtonAction:(id)sender;
- (IBAction)outputPopUpButtonAction:(id)sender;
- (IBAction)configurationPopUpButtonAction:(id)sender;

- (IBAction)editBuildOptionAction:(id)sender;

- (IBAction)addBuildStepAction:(id)sender;
- (IBAction)removeBuildStepAction:(id)sender;
- (IBAction)editBuildStepAction:(id)sender;

- (IBAction)addBuildConfigurationAction:(id)sender;
- (IBAction)removeBuildConfigurationAction:(id)sender;
- (IBAction)duplicateBuildConfigurationAction:(id)sender;
- (IBAction)makeActiveBuildConfigurationAction:(id)sender;
@end
